// ! 运行在函数内部

// # 在node中有一个全局对象global,它的作用和网页中的window类似
// # 在全局中创建的变量都会作为global的属性保存
// # 在全局中创建的函数都会作为global的方法保存

// # 在node执行模块中的代码时,它会首先在代码的最顶部,添加如下代码
// # function (exports,require,module,__filename,__dirname){
// # 在代码的最底部添加如下代码
// # }

// # 实际上模块中的代码都是包装在一个函数中执行的,并且在函数执行时,同时传递了5个实参
// # exports:该对象用来将变量或函数暴露到外部
// # require:函数,用来引入外部的模块
// # module:代表的是当前的模块本身,exports就是module的属性,既可以使用exports导出,也可以使用module.exports导出
// # __filename:当前模块的完整路径
// # __dirname:当前模块所在文件夹的路径

console.log(exports == module.exports); //true
console.log(__filename); //E:\七七学前端\nodejs\02_模块化\04_module.js
console.log(__dirname); //E:\七七学前端\nodejs\02_模块化

// var a = 10; // 不是全局变量
// console.log(global.a); //undefined

// b = 10; // 是全局变量
// console.log(global.b);//10

// ? 只有函数内部有的参数,函数外部没有,伪数组对象
// ? 函数arguments的callee属性--保存的是当前函数的执行对象
// console.log(arguments);
// console.log(arguments.callee);

